Анализ поведения пользователей мобильного приложения

Цель проекта:
Изучить поведение покупателей на основании логов и проведения A/A/B теста
Описание данных (/datasets/logs_exp.csv):
  • EventName — название события;
  • DeviceIDHash — уникальный идентификатор пользователя;
  • EventTimestamp — время события;
  • ExpId — номер эксперимента: 246 и 247 — контрольные группы, а 248 — экспериментальная.
Шаги исследования:
  1. Ознакомиться с общей информацию в логах
  2. Подготовить данные к исследованию
  3. Изучить и проверить данные
  4. Изучить воронку событий
  5. Изучить результаты эксперимента с помощью А/A/B теста
  6. Построение выводов

Импорт библиотек

Импорт данных

Знакомсто с данными

Предобработка данных

Изменяем названия столбцов

Приводим к нужному типу данных столбец с датой

Поиск и удаление дубликатов

Количество удалённых данных, составляют очень маленькую часть от общего набора

Добавляем столбец с датой без времени

Проверка пересечения пользователей в группах

Предобработка завершена
Названия столбцов были приведены к удобному виду, тип данных в столбце с датой был изменён
и приведён к понятному виду, явные дубликаты были удалены из таблицы, была произведена проверка пересечения пользователей

Анализ данных

Изучение количества пользователей и событий

Находим количество событий в логе

Находим количество пользователей в логе

Находим среднее количество событий на одного пользователя

Визуализируем сколько событий в среднем приходится на пользователя

Медианное значение событий на пользователя 20
Минимальным количеством событий является - 1, а максимальным - 2307
5% пользователей совершает больше 89 событий и 1% больше 200 событий
Удалять "аномальных" пользователей не будем, так как это могут быть пользователи регулярно пользующиеся приложением,
и проходящие путь от "Главноего экрана" до "Совершения покупки" несколько раз в день/несколько дней.

Изучение периода данных

Период данных

Визуализация распределения логов по дате и времени

На графике распределения по дате и времени видно, что по даннх по июлю очень мало, так что примем их за "аномальные".

Отбрасываем данные по июлю

Удалено событий: 2826
Удалено пользователей: 17
Доли удалённых пользователей и событий очень маленькие, поэтому не несут статистической важности

Смотрим на распределение групп по количеству пользователей и событий

Количество пользователей в группах можно назвать сбалансированным.
Количество событий в группах распределено достаточно нормально для продолжения исследования

Изучение воронки событий

Изучим какие события есть в логах и как часто они встречаютя

Из увиденных данных можно сказать, что событие "Появление главного экрана" встречается чаще всего,
что не удивительно, ведь вероятнее всего пользователи начинают работу с приложением именно с этого события.

События "Появление предложений","Появление карточки товара","Экран подтверждения успешного платежа",
распределены достаточно равномерно, до экрана подтверждения успешного платежа доходит чуть меньше пользователей.

Событие "Урок" просмотрело самое маленькое количество пользователей.

Изучим пользователей по событиям, которые они совершали

Из полученной таблицы можно можно построить воронку событий, события в ней будут располагаться по убыванию
доли пользователей совершивших событие
Событие Tutorial исключим из данных, так как в нём принимает участие очень маленький процент пользователей

Построим воронку событий, в которой отобразим долю перехода пользователей на следующий шаг, относительно предидущего.

Самое большое количество пользователей теряется после первого события - 38%
Доля пользователей дошедших до этапа совершения покупки - 48%

Анализ А/A/B теста

Изучим количество пользователей в группах 246(А),247(A),248(B)

Видимых отличей между группами нет

Проведём А/A экперимент для контрольных групп 246(А) и 247(A)

Проверим имеют ли группы 246(A) и 247(А) различия в статистических критериях
Гипотеза H0: Группы 246 и 247 не имеют разницы в статистических критериях
Гипотеза H1: Группы 246 и 247 имеют разницу в статистических критериях

Статистические критерии не находят разницы между контрольными группами 246 и 247

Создаём функцию для проведения дальнейших тестов

Так как в дальнейших тестах будет происходить сравнение в разбивке по событиям,
то внесём поправку Шидака для 16 итераций, так как различных проведённых тестирований будет 16

Создаём срезы по группам

Проверим есть ли отличия в разбивке по событиям среди пользователей совершивших событие в группах 246(A) и 247(A)
Гипотеза H0: Между пользователями групп 246 и 247 совершивших событие нет различий в разбивке по событиям
Гипотеза H1: Между пользователями групп 246 и 247 совершивших событие есть различия в разбивке по событиям

Для каждого события не получилось отвергнуть нулевую гипотезу, можно говорить о том,
что среди пользователей групп 246 и 247 совершивших событие различий нет.

Проверим есть ли отличия в разбивке по событиям среди пользователей совершивших событие в группах 246(A) и 248(B)
Гипотеза H0: Между пользователями групп 246 и 248 совершивших событие нет различий в разбивке по событиям
Гипотеза H1: Между пользователями групп 246 и 248 совершивших событие есть различия в разбивке по событиям

Для каждого события не получилось отвергнуть нулевую гипотезу, можно говорить о том,
что среди пользователей групп 246 и 248 совершивших событие различий нет.

Проверим есть ли отличия в разбивке по событиям среди пользователей совершивших событие в группах 247(A) и 248(B)
Гипотеза H0: Между пользователями групп 247 и 248 совершивших событие нет различий в разбивке по событиям
Гипотеза H1: Между пользователями групп 247 и 248 совершивших событие есть различия в разбивке по событиям

Для каждого события не получилось отвергнуть нулевую гипотезу, можно говорить о том,
что среди пользователей групп 247 и 248 совершивших событие различий нет.

Создаём срез с объединением групп 246 и 247

Проверим есть ли отличия в разбивке по событиям среди пользователей совершивших событие в группах 246(A)+247(A) и 248(B)
Гипотеза H0: Между пользователями групп 246(A)+247(A) и 248 совершивших событие нет различий в разбивке по событиям
Гипотеза H1: Между пользователями групп 246(A)+247(A) и 248 совершивших событие есть различия в разбивке по событиям

Для каждого события не получилось отвергнуть нулевую гипотезу, можно говорить о том,
что среди пользователей групп 247 и 248 совершивших событие различий нет.
За уровень статистической значимости было принято значение alpha = 0.05, так же была прнята поправка шидака для 4 иттераций
так как при таком значение вероятность ошибочно отвергнуть гипотезу меньше
Поправка шидака = (1 - (1 - alpha)^(1/4)

Вывод

Результаты исследования

В исследование учавствовали 4 основных события:
Просмотр главного экрана, просмотр предложений, просмотр карточек товаров, завершение покупки
Событие по просмотру урока не использовалось в анализе, так как в нём учавствовало слишком маленькое количество пользователей.


Работа над конверсией
Большую часть пользователей, а именно 38%, приложение теряет после первого события.
Возможно стоить поработать над дизайном главной страницы, для большей заинтересованности пользователей.
До совершения покупки от первого события доходит 48% пользователей, если исправить отток пользователей на первом этапе
этот показатель можно будет увеличить


A/A/B тестирование
Проводилось исследование двух контрольных групп и одной группы с изменённым шрифтом
По итогам тестов статистически важных различий между группами как по отдельности, так и комбинировано не было обнаружено

Из проделанной работы, можно сказать о том, что изменение шрифтов во всём приложении никак не влияет на пользователей.
Можно проработать другие варианты изменения интерфейса приложения, пример приведён выше.